#pragma once

#include <iostream>

struct Type {
    enum class Basic { Int = 'I', Float = 'F', Void = 'V' };
    Basic base;
    bool isPtr;

    Type(Basic base, bool isPtr) : base(base), isPtr(isPtr) {}
    friend std::ostream& operator<<(std::ostream& out, const Type& t) {
        out << (char)t.base << (t.isPtr ? "*" : "");
        return out;
    }
};
